package com.softserveinc.ita.kaiji.model.game;

import com.softserveinc.ita.kaiji.model.player.bot.Bot;
import com.softserveinc.ita.kaiji.model.player.Player;

import java.util.Date;
import java.util.Set;

/**
 * Contains the information of a game
 * @author Bohdan Shaposhnik
 * @version 1.6
 * @since 17.03.2014
 */
public interface GameInfo {
	/**
	 * @return owner name
	 */
	String getOwnerName();
	/**
	 * @return all players
	 */
	Set<Player> getPlayers();
	/**
	 * @return if the game is player VS bot
	 */
	boolean isBotGame();
	/**
	 * @return the name of the game
	 */
	String getGameName();
	/**
	 * @return the number of cards of each type
	 */
	Integer getNumberOfCards();
	/**
	 * @return the type of a bot used
	 */
	Bot.Types getBotType();

    /**
     * @return time when game was started.
     */
    Date getGameStartTime();

    /**
     * Sets time when game was started.
     * @param gameStartTime time when game wes started
     */
    void setGameStartTime(Date gameStartTime);

    /**
     * @return time when game was ended.
     */
    Date getGameFinishTime();

    /**
     * Sets time when game was finished.
     * @param gameFinishTime time when game was finished.
     */
    void setGameFinishTime(Date gameFinishTime);
}
